关于大整数的乘法的算法时间复杂度的计算过程推导(纯属个人推测,请高人指正)

详细的算法介绍不再介绍,网上到处都是。
未优化的算法:


优化后的算法:


推导过程:
优化前推导:
T(1)=O(1);
T(2)=4O(1)+O(2);
T(4)=16O(1)+4O(2)+O(4);
T(8)=64O(1)+16O(2)+4O(4)+O(8);
.....
T(n)=n²O(1)+n²/4O(2)+n²/16O(4)+.....+O(n);
根据性质f=O(f) ① 得:
T(n)=O(n²)*O(1)+O(n²/4)*O(2)+O(n²/16)*O(4)+.....+O(n);
根据性质O(f)*O(g)=O(fg) ② 得:
T(n)=O(n²)+O(n²/2)+O(n²/4)+....+O(n);
根据性质O(f)+O(g)=O(max(f,g)) ③ 又因为n>=1,因此n²>n²/2>n²/4>.....>n;
因此T(n)=O(n²)。
(性质均来自王晓东《计算机算法设计与分析》P3)

同理可以推得优化后的T(n)=O(n^log(3/2)).






  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值